package edu.wust;

public class exam44 {
    //    五边形数可以由公式生成：Pn=n(3n−1)/2，前十个五边形数如下：
//            1, 5, 12, 22, 35, 51, 70, 92, 117, 145,...
//    可以看出 P4+P7=22+70=92=P8。然而，这两个数的差 70−22=48 并不是五边形数。
//    假设有一对五边形数 Pj 和 Pk，这两个数的和和差的绝对值都是五边形数，假设 D=|Pk−Pj|，
//    求 D 的最小值。
//    答案：5482660
    public static int five(int num) {
        return num * (num * 3 - 1) / 2;  //生成五边形
    }
    public static boolean wu(double n){   //判断是否为五边形
        double p=2.0*n/3.0+1.0/36.0;
        double x=Math.sqrt(p)+1/6.0;
        double end=0.0000000001;
        long xx=(int)Math.floor(x);
        if(x-xx<end)
            return true;
        return false;
    }
    public static void main(String[] args) {
        int D=0;
        outer:
        for(int i=2;;++i){
            for(int j=1;j<=i;j++){
                int pi=five(i);
                int pj=five(j);
                if(wu(pj+pi) && wu(pi-pj)){
                    D=pi-pj;
                    System.out.println(D);
                    break outer;
                }
            }
        }
    }
}


